Quindi ho qualche problema a capire l'uso corretto di list :: sort () rispetto a un elenco di strutture. Ecco il codice pertinente: struct student { char firstnm [20], lastnm [20]; int id, grado; }; listsList; // Codice irrilevante ... cout << "Inserisci il tuo nome, id e grado. (Es: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (dati); sList.sort (); Il problema che sto cercando di risolvere è utilizzare sList.sort () per ordinare per id. Tuttavia, non ho idea di come passarlo correttamente in list :: sort (). Grazie in anticipo per qualsiasi aiuto / tempo! EDIT: La soluzione è stata semplicemente l'aggiunta di questo alla mia struttura Operatore bool <(const student & cmp) const { return id
2021-01-22 08:20:42
Dovresti dare un'occhiata a std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Esistono più definizioni di quella funzione e una in cui è possibile specificare ciò che si desidera ordinare. Inoltre, dai un'occhiata a quel post, penso sia ciò di cui hai bisogno: https://stackoverflow.com/a/21234017/6663947 Modificare : questo è un esempio di comparatore: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Confronta comp); Supponendo che si desideri ordinare gli oggetti studente nell'elenco in base all'ID chiave in ordine crescente. Puoi definire l'operatore